<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // example 1
        // let a = {}, b ='0', c=0;
        // a[b] = "珠峰";
        // a[c] = "培训";
        // console.log(a[b]) //培训
        // =>对象和数组的区别

        // example 2
        // let a = {}
        //     b = Symbol('1'), //Symbol创建的唯一值的
        //     c = Symbol('1');
        //     a[b] = "珠峰";
        //     a[c] = "培训";
        //     console.log(a[b]); //珠峰
        // => 自己实现 Symbol
        //example 3
        // let a = {},
        //     b = {
        //         n: '1'
        //     },
        //     c = {
        //         m: '2'
        //     };
        //     a[b] = "珠峰";
        //     a[c] = "培训";
        //     console.log(a[b]) //培训
            // 关于Object.prototype.toSring / valueOf;
            //编译机制的问题;

        // 遇到会的题不要慌，
        // var test = (function(i){
        //     return function () {
        //         alert(i *=2 );
        //     }
        // })(2)
        // test(5) //4  正确答案是字符串4  alert()转化的都是字符串；
        // 内存回收机制
        // 执行上下文的环境，，Execution Context Stack
        /*
            执行上下文 
            i =2 
            return  AAAFFF111

            其中AAAFFF111
            "alert(i*2);"
            作为函数，在堆中存储代码（字符串） protocotype length 、、形参个数；      
        */ 

        //例子
        var a = 0,
            b = 0;
            function A(a) {
                A = function (b) {
                    alert(a + b++);
                }
                alert(a++)
            }
            A(1);//1
            A(2);//4
            //A = function() 重写了函数A
    </script>
    1.堆：就是存储引用类型值得空间
    2.栈：就是存储基本类型值和指定代码的环境
    3.一般都是使用16进制的值存储的内存地址；
    4.对象中的属性名不能重复；
        数字属性名 === 字符串属性名

    5.Symbol创建的唯一值的
    Symbol('1') === Symbol('1') 为false;
    6.对象的属性名只能是字符串么？不一定还可能是symbol值

    7.b Object.toString() [object object]

    8.null 和 undefined有什么区别？

    9.闭包作用，保存和保护；

    10.AST语法树；
</body>
</html>